package pe.gob.onpe.ejb;

import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 * Perfiles entity.
 * 
 * @author MyEclipse Persistence Tools
 */
@Entity
@Table(name = "PERFILES", schema = "SVENP", uniqueConstraints = {})
public class Perfiles implements java.io.Serializable {

	// Fields
	private static final long serialVersionUID = -3949132683906876990L;
	private Long perfilesId;
	private String nombre;
	private String descripcion;
	private Set<PerfilesOpciones> perfilesOpcioneses = new HashSet<PerfilesOpciones>(
			0);
	private Set<Usuario> usuarios = new HashSet<Usuario>(0);

	// Constructors

	/** default constructor */
	public Perfiles() {
	}

	/** minimal constructor */
	public Perfiles(Long perfilesId, String nombre) {
		this.perfilesId = perfilesId;
		this.nombre = nombre;
	}

	/** full constructor */
	public Perfiles(Long perfilesId, String nombre, String descripcion,
			Set<PerfilesOpciones> perfilesOpcioneses, Set<Usuario> usuarios) {
		this.perfilesId = perfilesId;
		this.nombre = nombre;
		this.descripcion = descripcion;
		this.perfilesOpcioneses = perfilesOpcioneses;
		this.usuarios = usuarios;
	}

	// Property accessors
	@Id
	@Column(name = "PERFILES_ID", unique = true, nullable = false, insertable = true, updatable = true, precision = 10, scale = 0)
	public Long getPerfilesId() {
		return this.perfilesId;
	}

	public void setPerfilesId(Long perfilesId) {
		this.perfilesId = perfilesId;
	}

	@Column(name = "NOMBRE", unique = false, nullable = false, insertable = true, updatable = true)
	public String getNombre() {
		return this.nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	@Column(name = "DESCRIPCION", unique = false, nullable = true, insertable = true, updatable = true)
	public String getDescripcion() {
		return this.descripcion;
	}

	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}

	@OneToMany(cascade = { CascadeType.ALL }, fetch = FetchType.LAZY, mappedBy = "perfiles")
	public Set<PerfilesOpciones> getPerfilesOpcioneses() {
		return this.perfilesOpcioneses;
	}

	public void setPerfilesOpcioneses(Set<PerfilesOpciones> perfilesOpcioneses) {
		this.perfilesOpcioneses = perfilesOpcioneses;
	}

	@OneToMany(cascade = { CascadeType.ALL }, fetch = FetchType.LAZY, mappedBy = "perfiles")
	public Set<Usuario> getUsuarios() {
		return this.usuarios;
	}

	public void setUsuarios(Set<Usuario> usuarios) {
		this.usuarios = usuarios;
	}

}